205. 同构字符串
205. 同构字符串
Similar Question
Solution Tips
方案一: 双向映射
var isIsomorphic = function(s, t) {
const s2t = {};
const t2s = {};
const len = s.length;
for (let i = 0; i < len; ++i) {
const x = s[i], y = t[i];
if ((s2t[x] && s2t[x] !== y) || (t2s[y] && t2s[y] !== x)) {
return false;
}
s2t[x] = y;
t2s[y] = x;
}
return true;
};
映射成同一个 Result
用数组去重的思路,给第一次出现的字母一个编号,用数字编号来表示该字符串的结构,最后比较该数字串
var isIsomorphic = function(s, t) {
const _s = translate(s)
const _t = translate(t)
return _s === _t
function translate(str){
const map = {}
let counter = 0
let res = ''
for (let i = 0; i < str.length; i++) {
if(map[str[i]]===undefined) map[str[i]] = counter++
res += map[str[i]]
}
return res
}
}
在优化一下就是一个循环同时进行判断,一旦不相同马上返回